package com.aura.springbook.model.vo;

import com.aura.springbook.model.User;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 用户信息VO类（不包含密码字段）
 */
@Data
public class UserVO {
    /**
     * 用户的唯一标识
     */
    private Long id;

    /**
     * 用户登录时使用的唯一标识
     */
    private String username;

    /**
     * 用户的真实姓名信息
     */
    private String realName;

    /**
     * 用户的联系电话
     */
    private String phone;

    /**
     * 用户账户的创建时间
     */
    private LocalDateTime createTime;

    /**
     * 用户信息的最后更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 将User实体对象转换为UserVO视图对象，排除密码等敏感信息
     *
     * @param user User实体
     * @return UserVO对象
     */
    public static UserVO fromUser(User user) {
        UserVO userVO = new UserVO();
        userVO.setId(user.getId());
        userVO.setUsername(user.getUsername());
        userVO.setRealName(user.getRealName());
        userVO.setPhone(user.getPhone());
        userVO.setCreateTime(user.getCreateTime());
        userVO.setUpdateTime(user.getUpdateTime());
        return userVO;
    }
}